#include<iostream>
#include<pthread.h>
#include<unistd.h>
#include<string>
#include <sys/types.h>
#include <signal.h>
void* child(void* args){
    int mypid = getpid();
    std::cout << "mypid :" << mypid << std::endl;
    kill(mypid,15);
    return nullptr;
}

int main(){
    pthread_t tid;
    if(pthread_create(&tid,NULL,child,NULL)){
        perror("pthread_create error");
        return 1;
    }
    sleep(1);
    std::cout << "this is main pid:" << getpid() << std::endl;
    if(pthread_detach(tid)){
        perror("pthread_detach error :");
        return 1;
    } 
    return 0;
}

// int main(){
//     pid_t pid = fork();
//     int* a_ptr = (int*)malloc(sizeof(int));
//     *a_ptr = 10;
//     if(pid < 0){
//         perror("fork error");
//         return 1;
//     }
//     else if(pid == 0){
//         sleep(1);
//         std::cout << --(*a_ptr) << std::endl;
//         std::cout << "i am child:\n";
//         pid_t mypid = getpid(); 
//         pid_t myppid = getppid();
//         printf("mypid :%d myppid :%d\n",(int)mypid,(int)myppid);
//         // kill(myppid,9);
//     }
//     else{
//         // sleep(1);
//         std::cout << ++(*a_ptr) << std::endl;
//         std::cout << "i am father:\n";
//         pid_t mypid = getpid(); 
//         pid_t myppid = getppid();
//         printf("mypid :%d myppid :%d\n",(int)mypid,(int)myppid);
//         // kill(pid,9);
//     }

// }


